package com.yanbao.shiro;

import com.free.ext.shiro.filter.CustomAuthenticationFilter;
import com.free.ext.shiro.token.CapatchaUserPwdToken;
import org.apache.shiro.authc.AuthenticationToken;

import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

/**
 * <p>
 * 功能概述:
 * </p>
 * <p>
 * 功能详述:
 * </p>
 */
public class UserAuthenticationFilter extends CustomAuthenticationFilter {

    /*========================================================================*
     *                         Public Fields (公共属性)
     *========================================================================*/

    /*========================================================================*
     *                         Private Fields (私有属性)
     *========================================================================*/

    /*========================================================================*
     *                         Construct Methods (构造方法)
     *========================================================================*/

    /*========================================================================*
     *                         Public Methods (公有方法)
     *========================================================================*/

    @Override
    public AuthenticationToken createToken(ServletRequest request, ServletResponse response){
        // 将画面上用户输入的认证信息做成 token（实际认证的检查在自定义的 realms 类里面完成）
        String username = getUsername(request);
        String password = getPassword(request);
        String captcha = getCaptcha(request);
        return new CapatchaUserPwdToken(captcha, username, password);
    }

    @Override
    public void loginSuccess(Object object) {

    }

    @Override
    public void loginFailure(String custName) {

    }

    /*========================================================================*
     *                         Private Methods (私有方法)
     *========================================================================*/
}
